<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// 多态：不同的数据执行相同的操作，如果表现不同，那么即是多态。
	// function fn(a,b){
	// 	return a+b;
	// }
	//
	// console.log(fn(1,2));// 3
	// console.log(fn(100,200));// 300
	
	// `JS`对象多态性是与生俱来的：同一操作作用于不同的对象上面，可以产生不同的解释和不同的执行结果，
	// 也就是说，给不同的对象发送同一个消息时，这些对象会根据这个消息分别给出不同的反馈。
	
	const obj = {
		getNum(num=1){
			return "obj->getNum"+num;
		}
	}
	function Box(){
	
	}
	Box.prototype.getNum = function(num=2){
		return "Box->prototype->getNum"+num;
	}
	const obj2 = new Box();
	console.log(obj.getNum());// 100;
	console.log(obj2.getNum());// 200
	
	function fn(cb){
		console.log(cb());
	}
	fn(obj.getNum);
	fn(obj2.getNum);
</script>
</html>